{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import warnings\n",
    "warnings.filterwarnings('ignore')\n",
    "import os"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "# !pip install -U git+https://github.com/qubvel/efficientnet"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "__file__ = 'EfficientNet-B5-9.4.5-2'\n",
    "__version__ = 'v8'\n",
    "os.environ[\"CUDA_VISIBLE_DEVICES\"] = \"2\""
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Using TensorFlow backend.\n"
     ]
    }
   ],
   "source": [
    "from keras.preprocessing.image import ImageDataGenerator\n",
    "from glob import glob\n",
    "import tensorflow as tf\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "import keras\n",
    "from keras.applications.inception_v3 import InceptionV3\n",
    "from keras.applications.xception import Xception\n",
    "from keras.applications.resnet50 import ResNet50\n",
    "from keras_applications.resnext import ResNeXt50\n",
    "from keras.applications.nasnet import NASNetLarge\n",
    "from keras.applications.inception_resnet_v2 import InceptionResNetV2\n",
    "from keras.models import *\n",
    "from keras.layers import *\n",
    "from keras.optimizers import *\n",
    "from keras.callbacks import *\n",
    "import PIL\n",
    "import time\n",
    "import efficientnet.keras as efn "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "path_data = '../garbage_classify/train_data'\n",
    "batch_size = 16\n",
    "img_size = 456\n",
    "img_width = img_size\n",
    "img_height = img_size\n",
    "random_seed = 201908\n",
    "path_data_train = f'../tmp/data_train_{__version__}/'\n",
    "path_data_valid = f'../tmp/data_valid_{__version__}/'\n",
    "labels_file = '../tmp/labels_raw.csv'"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x7fee345d7ba8>"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "labels_train = pd.read_csv(f'../tmp/labels_train_{__version__}.csv')\n",
    "labels_valid = pd.read_csv(f'../tmp/labels_valid_{__version__}.csv')\n",
    "n_classess = labels_train.label.unique().shape[0]\n",
    "labels_train.groupby(by='label').count().plot()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x7fee339a7898>"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "lbs = []\n",
    "n_train = 280\n",
    "for lb in range(40):\n",
    "    l = labels_train[labels_train.label == lb]\n",
    "    if l.shape[0]>n_train:\n",
    "        lbs.append(l.sample(n_train))\n",
    "    else:\n",
    "        lbs.append(l)\n",
    "labels_train = pd.concat(lbs)\n",
    "labels_train.groupby(by='label').count().plot()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "labels_train.label = labels_train.label.apply(lambda x: f'{x:02d}')\n",
    "labels_valid.label = labels_valid.label.apply(lambda x: f'{x:02d}')\n",
    "# labels_train['label_bin'].values = keras.utils.np_utils.to_categorical(\n",
    "#     labels_train.label, n_classess)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "({0: 1.3422279792746115,\n",
       "  1: 0.9251785714285714,\n",
       "  2: 1.161659192825112,\n",
       "  3: 3.8095588235294118,\n",
       "  4: 0.9251785714285714,\n",
       "  5: 1.1214285714285714,\n",
       "  6: 0.9251785714285714,\n",
       "  7: 0.9251785714285714,\n",
       "  8: 0.9251785714285714,\n",
       "  9: 0.9251785714285714,\n",
       "  10: 0.9251785714285714,\n",
       "  11: 0.9251785714285714,\n",
       "  12: 0.98125,\n",
       "  13: 0.9251785714285714,\n",
       "  14: 0.9251785714285714,\n",
       "  15: 0.9251785714285714,\n",
       "  16: 0.9251785714285714,\n",
       "  17: 1.0487854251012145,\n",
       "  18: 0.9251785714285714,\n",
       "  19: 1.0403614457831325,\n",
       "  20: 1.4391666666666667,\n",
       "  21: 0.9251785714285714,\n",
       "  22: 0.9251785714285714,\n",
       "  23: 1.0487854251012145,\n",
       "  24: 1.0198818897637796,\n",
       "  25: 0.9251785714285714,\n",
       "  26: 0.9251785714285714,\n",
       "  27: 0.9251785714285714,\n",
       "  28: 0.9251785714285714,\n",
       "  29: 0.9251785714285714,\n",
       "  30: 1.0119140625,\n",
       "  31: 0.9251785714285714,\n",
       "  32: 1.1564732142857144,\n",
       "  33: 1.007976653696498,\n",
       "  34: 0.9251785714285714,\n",
       "  35: 0.9251785714285714,\n",
       "  36: 1.221933962264151,\n",
       "  37: 1.007976653696498,\n",
       "  38: 0.9251785714285714,\n",
       "  39: 0.9251785714285714},\n",
       " <matplotlib.axes._subplots.AxesSubplot at 0x7fef2c5dab38>)"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "from sklearn.utils.class_weight import compute_class_weight\n",
    "class_weights = compute_class_weight('balanced', np.unique(labels_train.label), labels_train.label)\n",
    "d_class_weights = dict(enumerate(class_weights))\n",
    "d_class_weights,(labels_train.groupby(by='label').count()['fname'] * class_weights).plot()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Found 10362 validated image filenames belonging to 40 classes.\n",
      "Found 2976 validated image filenames belonging to 40 classes.\n"
     ]
    }
   ],
   "source": [
    "ig = ImageDataGenerator(preprocessing_function=efn.preprocess_input)\n",
    "\n",
    "params_g = dict(\n",
    "    batch_size=batch_size,\n",
    "    # directory=path_data,\n",
    "    # class_mode='other',\n",
    "    x_col='fname',\n",
    "    y_col='label',\n",
    "    target_size=(img_width, img_height),\n",
    "    interpolation='lanczos',\n",
    "    seed=random_seed)\n",
    "\n",
    "train_g = ig.flow_from_dataframe(labels_train, path_data_train, **params_g)\n",
    "valid_g = ig.flow_from_dataframe(labels_valid[:-(labels_valid.shape[0] % batch_size)], path_data_valid, shuffle=False, **params_g)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "WARNING:tensorflow:From /usr/local/lib/python3.6/dist-packages/tensorflow/python/framework/op_def_library.py:263: colocate_with (from tensorflow.python.framework.ops) is deprecated and will be removed in a future version.\n",
      "Instructions for updating:\n",
      "Colocations handled automatically by placer.\n",
      "WARNING:tensorflow:From /usr/local/lib/python3.6/dist-packages/tensorflow/python/framework/function.py:1007: calling Graph.create_op (from tensorflow.python.framework.ops) with compute_shapes is deprecated and will be removed in a future version.\n",
      "Instructions for updating:\n",
      "Shapes are always computed; don't use the compute_shapes as it has no effect.\n",
      "WARNING:tensorflow:From /usr/local/lib/python3.6/dist-packages/keras/backend/tensorflow_backend.py:3445: calling dropout (from tensorflow.python.ops.nn_ops) with keep_prob is deprecated and will be removed in a future version.\n",
      "Instructions for updating:\n",
      "Please use `rate` instead of `keep_prob`. Rate should be set to `rate = 1 - keep_prob`.\n"
     ]
    }
   ],
   "source": [
    "base_model = efn.EfficientNetB5(weights='imagenet', include_top=False, input_shape=(img_width, img_height, 3),pooling='avg')\n",
    "for layer in base_model.layers[:-285]:\n",
    "    layer.trainable=False"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "__________________________________________________________________________________________________\n",
      "Layer (type)                    Output Shape         Param #     Connected to                     \n",
      "==================================================================================================\n",
      "input_1 (InputLayer)            (None, 456, 456, 3)  0                                            \n",
      "__________________________________________________________________________________________________\n",
      "stem_conv (Conv2D)              (None, 228, 228, 48) 1296        input_1[0][0]                    \n",
      "__________________________________________________________________________________________________\n",
      "stem_bn (BatchNormalization)    (None, 228, 228, 48) 192         stem_conv[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "stem_activation (Activation)    (None, 228, 228, 48) 0           stem_bn[0][0]                    \n",
      "__________________________________________________________________________________________________\n",
      "block1a_dwconv (DepthwiseConv2D (None, 228, 228, 48) 432         stem_activation[0][0]            \n",
      "__________________________________________________________________________________________________\n",
      "block1a_bn (BatchNormalization) (None, 228, 228, 48) 192         block1a_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block1a_activation (Activation) (None, 228, 228, 48) 0           block1a_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block1a_se_squeeze (GlobalAvera (None, 48)           0           block1a_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block1a_se_reshape (Reshape)    (None, 1, 1, 48)     0           block1a_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block1a_se_reduce (Conv2D)      (None, 1, 1, 12)     588         block1a_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block1a_se_expand (Conv2D)      (None, 1, 1, 48)     624         block1a_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block1a_se_excite (Multiply)    (None, 228, 228, 48) 0           block1a_activation[0][0]         \n",
      "                                                                 block1a_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block1a_project_conv (Conv2D)   (None, 228, 228, 24) 1152        block1a_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block1a_project_bn (BatchNormal (None, 228, 228, 24) 96          block1a_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block1b_dwconv (DepthwiseConv2D (None, 228, 228, 24) 216         block1a_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block1b_bn (BatchNormalization) (None, 228, 228, 24) 96          block1b_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block1b_activation (Activation) (None, 228, 228, 24) 0           block1b_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block1b_se_squeeze (GlobalAvera (None, 24)           0           block1b_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block1b_se_reshape (Reshape)    (None, 1, 1, 24)     0           block1b_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block1b_se_reduce (Conv2D)      (None, 1, 1, 6)      150         block1b_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block1b_se_expand (Conv2D)      (None, 1, 1, 24)     168         block1b_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block1b_se_excite (Multiply)    (None, 228, 228, 24) 0           block1b_activation[0][0]         \n",
      "                                                                 block1b_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block1b_project_conv (Conv2D)   (None, 228, 228, 24) 576         block1b_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block1b_project_bn (BatchNormal (None, 228, 228, 24) 96          block1b_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block1b_drop (FixedDropout)     (None, 228, 228, 24) 0           block1b_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block1b_add (Add)               (None, 228, 228, 24) 0           block1b_drop[0][0]               \n",
      "                                                                 block1a_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block1c_dwconv (DepthwiseConv2D (None, 228, 228, 24) 216         block1b_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block1c_bn (BatchNormalization) (None, 228, 228, 24) 96          block1c_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block1c_activation (Activation) (None, 228, 228, 24) 0           block1c_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block1c_se_squeeze (GlobalAvera (None, 24)           0           block1c_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block1c_se_reshape (Reshape)    (None, 1, 1, 24)     0           block1c_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block1c_se_reduce (Conv2D)      (None, 1, 1, 6)      150         block1c_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block1c_se_expand (Conv2D)      (None, 1, 1, 24)     168         block1c_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block1c_se_excite (Multiply)    (None, 228, 228, 24) 0           block1c_activation[0][0]         \n",
      "                                                                 block1c_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block1c_project_conv (Conv2D)   (None, 228, 228, 24) 576         block1c_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block1c_project_bn (BatchNormal (None, 228, 228, 24) 96          block1c_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block1c_drop (FixedDropout)     (None, 228, 228, 24) 0           block1c_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block1c_add (Add)               (None, 228, 228, 24) 0           block1c_drop[0][0]               \n",
      "                                                                 block1b_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block2a_expand_conv (Conv2D)    (None, 228, 228, 144 3456        block1c_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block2a_expand_bn (BatchNormali (None, 228, 228, 144 576         block2a_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block2a_expand_activation (Acti (None, 228, 228, 144 0           block2a_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block2a_dwconv (DepthwiseConv2D (None, 114, 114, 144 1296        block2a_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block2a_bn (BatchNormalization) (None, 114, 114, 144 576         block2a_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block2a_activation (Activation) (None, 114, 114, 144 0           block2a_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block2a_se_squeeze (GlobalAvera (None, 144)          0           block2a_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block2a_se_reshape (Reshape)    (None, 1, 1, 144)    0           block2a_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block2a_se_reduce (Conv2D)      (None, 1, 1, 6)      870         block2a_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block2a_se_expand (Conv2D)      (None, 1, 1, 144)    1008        block2a_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block2a_se_excite (Multiply)    (None, 114, 114, 144 0           block2a_activation[0][0]         \n",
      "                                                                 block2a_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block2a_project_conv (Conv2D)   (None, 114, 114, 40) 5760        block2a_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block2a_project_bn (BatchNormal (None, 114, 114, 40) 160         block2a_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block2b_expand_conv (Conv2D)    (None, 114, 114, 240 9600        block2a_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block2b_expand_bn (BatchNormali (None, 114, 114, 240 960         block2b_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block2b_expand_activation (Acti (None, 114, 114, 240 0           block2b_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block2b_dwconv (DepthwiseConv2D (None, 114, 114, 240 2160        block2b_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block2b_bn (BatchNormalization) (None, 114, 114, 240 960         block2b_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block2b_activation (Activation) (None, 114, 114, 240 0           block2b_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block2b_se_squeeze (GlobalAvera (None, 240)          0           block2b_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block2b_se_reshape (Reshape)    (None, 1, 1, 240)    0           block2b_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block2b_se_reduce (Conv2D)      (None, 1, 1, 10)     2410        block2b_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block2b_se_expand (Conv2D)      (None, 1, 1, 240)    2640        block2b_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block2b_se_excite (Multiply)    (None, 114, 114, 240 0           block2b_activation[0][0]         \n",
      "                                                                 block2b_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block2b_project_conv (Conv2D)   (None, 114, 114, 40) 9600        block2b_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block2b_project_bn (BatchNormal (None, 114, 114, 40) 160         block2b_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block2b_drop (FixedDropout)     (None, 114, 114, 40) 0           block2b_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block2b_add (Add)               (None, 114, 114, 40) 0           block2b_drop[0][0]               \n",
      "                                                                 block2a_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block2c_expand_conv (Conv2D)    (None, 114, 114, 240 9600        block2b_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block2c_expand_bn (BatchNormali (None, 114, 114, 240 960         block2c_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block2c_expand_activation (Acti (None, 114, 114, 240 0           block2c_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block2c_dwconv (DepthwiseConv2D (None, 114, 114, 240 2160        block2c_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block2c_bn (BatchNormalization) (None, 114, 114, 240 960         block2c_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block2c_activation (Activation) (None, 114, 114, 240 0           block2c_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block2c_se_squeeze (GlobalAvera (None, 240)          0           block2c_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block2c_se_reshape (Reshape)    (None, 1, 1, 240)    0           block2c_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block2c_se_reduce (Conv2D)      (None, 1, 1, 10)     2410        block2c_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block2c_se_expand (Conv2D)      (None, 1, 1, 240)    2640        block2c_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block2c_se_excite (Multiply)    (None, 114, 114, 240 0           block2c_activation[0][0]         \n",
      "                                                                 block2c_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block2c_project_conv (Conv2D)   (None, 114, 114, 40) 9600        block2c_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block2c_project_bn (BatchNormal (None, 114, 114, 40) 160         block2c_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block2c_drop (FixedDropout)     (None, 114, 114, 40) 0           block2c_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block2c_add (Add)               (None, 114, 114, 40) 0           block2c_drop[0][0]               \n",
      "                                                                 block2b_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block2d_expand_conv (Conv2D)    (None, 114, 114, 240 9600        block2c_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block2d_expand_bn (BatchNormali (None, 114, 114, 240 960         block2d_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block2d_expand_activation (Acti (None, 114, 114, 240 0           block2d_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block2d_dwconv (DepthwiseConv2D (None, 114, 114, 240 2160        block2d_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block2d_bn (BatchNormalization) (None, 114, 114, 240 960         block2d_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block2d_activation (Activation) (None, 114, 114, 240 0           block2d_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block2d_se_squeeze (GlobalAvera (None, 240)          0           block2d_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block2d_se_reshape (Reshape)    (None, 1, 1, 240)    0           block2d_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block2d_se_reduce (Conv2D)      (None, 1, 1, 10)     2410        block2d_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block2d_se_expand (Conv2D)      (None, 1, 1, 240)    2640        block2d_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block2d_se_excite (Multiply)    (None, 114, 114, 240 0           block2d_activation[0][0]         \n",
      "                                                                 block2d_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block2d_project_conv (Conv2D)   (None, 114, 114, 40) 9600        block2d_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block2d_project_bn (BatchNormal (None, 114, 114, 40) 160         block2d_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block2d_drop (FixedDropout)     (None, 114, 114, 40) 0           block2d_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block2d_add (Add)               (None, 114, 114, 40) 0           block2d_drop[0][0]               \n",
      "                                                                 block2c_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block2e_expand_conv (Conv2D)    (None, 114, 114, 240 9600        block2d_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block2e_expand_bn (BatchNormali (None, 114, 114, 240 960         block2e_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block2e_expand_activation (Acti (None, 114, 114, 240 0           block2e_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block2e_dwconv (DepthwiseConv2D (None, 114, 114, 240 2160        block2e_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block2e_bn (BatchNormalization) (None, 114, 114, 240 960         block2e_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block2e_activation (Activation) (None, 114, 114, 240 0           block2e_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block2e_se_squeeze (GlobalAvera (None, 240)          0           block2e_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block2e_se_reshape (Reshape)    (None, 1, 1, 240)    0           block2e_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block2e_se_reduce (Conv2D)      (None, 1, 1, 10)     2410        block2e_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block2e_se_expand (Conv2D)      (None, 1, 1, 240)    2640        block2e_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block2e_se_excite (Multiply)    (None, 114, 114, 240 0           block2e_activation[0][0]         \n",
      "                                                                 block2e_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block2e_project_conv (Conv2D)   (None, 114, 114, 40) 9600        block2e_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block2e_project_bn (BatchNormal (None, 114, 114, 40) 160         block2e_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block2e_drop (FixedDropout)     (None, 114, 114, 40) 0           block2e_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block2e_add (Add)               (None, 114, 114, 40) 0           block2e_drop[0][0]               \n",
      "                                                                 block2d_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block3a_expand_conv (Conv2D)    (None, 114, 114, 240 9600        block2e_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block3a_expand_bn (BatchNormali (None, 114, 114, 240 960         block3a_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block3a_expand_activation (Acti (None, 114, 114, 240 0           block3a_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block3a_dwconv (DepthwiseConv2D (None, 57, 57, 240)  6000        block3a_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block3a_bn (BatchNormalization) (None, 57, 57, 240)  960         block3a_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block3a_activation (Activation) (None, 57, 57, 240)  0           block3a_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block3a_se_squeeze (GlobalAvera (None, 240)          0           block3a_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block3a_se_reshape (Reshape)    (None, 1, 1, 240)    0           block3a_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block3a_se_reduce (Conv2D)      (None, 1, 1, 10)     2410        block3a_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block3a_se_expand (Conv2D)      (None, 1, 1, 240)    2640        block3a_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block3a_se_excite (Multiply)    (None, 57, 57, 240)  0           block3a_activation[0][0]         \n",
      "                                                                 block3a_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block3a_project_conv (Conv2D)   (None, 57, 57, 64)   15360       block3a_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block3a_project_bn (BatchNormal (None, 57, 57, 64)   256         block3a_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block3b_expand_conv (Conv2D)    (None, 57, 57, 384)  24576       block3a_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block3b_expand_bn (BatchNormali (None, 57, 57, 384)  1536        block3b_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block3b_expand_activation (Acti (None, 57, 57, 384)  0           block3b_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block3b_dwconv (DepthwiseConv2D (None, 57, 57, 384)  9600        block3b_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block3b_bn (BatchNormalization) (None, 57, 57, 384)  1536        block3b_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block3b_activation (Activation) (None, 57, 57, 384)  0           block3b_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block3b_se_squeeze (GlobalAvera (None, 384)          0           block3b_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block3b_se_reshape (Reshape)    (None, 1, 1, 384)    0           block3b_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block3b_se_reduce (Conv2D)      (None, 1, 1, 16)     6160        block3b_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block3b_se_expand (Conv2D)      (None, 1, 1, 384)    6528        block3b_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block3b_se_excite (Multiply)    (None, 57, 57, 384)  0           block3b_activation[0][0]         \n",
      "                                                                 block3b_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block3b_project_conv (Conv2D)   (None, 57, 57, 64)   24576       block3b_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block3b_project_bn (BatchNormal (None, 57, 57, 64)   256         block3b_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block3b_drop (FixedDropout)     (None, 57, 57, 64)   0           block3b_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block3b_add (Add)               (None, 57, 57, 64)   0           block3b_drop[0][0]               \n",
      "                                                                 block3a_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block3c_expand_conv (Conv2D)    (None, 57, 57, 384)  24576       block3b_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block3c_expand_bn (BatchNormali (None, 57, 57, 384)  1536        block3c_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block3c_expand_activation (Acti (None, 57, 57, 384)  0           block3c_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block3c_dwconv (DepthwiseConv2D (None, 57, 57, 384)  9600        block3c_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block3c_bn (BatchNormalization) (None, 57, 57, 384)  1536        block3c_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block3c_activation (Activation) (None, 57, 57, 384)  0           block3c_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block3c_se_squeeze (GlobalAvera (None, 384)          0           block3c_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block3c_se_reshape (Reshape)    (None, 1, 1, 384)    0           block3c_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block3c_se_reduce (Conv2D)      (None, 1, 1, 16)     6160        block3c_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block3c_se_expand (Conv2D)      (None, 1, 1, 384)    6528        block3c_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block3c_se_excite (Multiply)    (None, 57, 57, 384)  0           block3c_activation[0][0]         \n",
      "                                                                 block3c_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block3c_project_conv (Conv2D)   (None, 57, 57, 64)   24576       block3c_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block3c_project_bn (BatchNormal (None, 57, 57, 64)   256         block3c_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block3c_drop (FixedDropout)     (None, 57, 57, 64)   0           block3c_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block3c_add (Add)               (None, 57, 57, 64)   0           block3c_drop[0][0]               \n",
      "                                                                 block3b_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block3d_expand_conv (Conv2D)    (None, 57, 57, 384)  24576       block3c_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block3d_expand_bn (BatchNormali (None, 57, 57, 384)  1536        block3d_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block3d_expand_activation (Acti (None, 57, 57, 384)  0           block3d_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block3d_dwconv (DepthwiseConv2D (None, 57, 57, 384)  9600        block3d_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block3d_bn (BatchNormalization) (None, 57, 57, 384)  1536        block3d_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block3d_activation (Activation) (None, 57, 57, 384)  0           block3d_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block3d_se_squeeze (GlobalAvera (None, 384)          0           block3d_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block3d_se_reshape (Reshape)    (None, 1, 1, 384)    0           block3d_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block3d_se_reduce (Conv2D)      (None, 1, 1, 16)     6160        block3d_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block3d_se_expand (Conv2D)      (None, 1, 1, 384)    6528        block3d_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block3d_se_excite (Multiply)    (None, 57, 57, 384)  0           block3d_activation[0][0]         \n",
      "                                                                 block3d_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block3d_project_conv (Conv2D)   (None, 57, 57, 64)   24576       block3d_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block3d_project_bn (BatchNormal (None, 57, 57, 64)   256         block3d_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block3d_drop (FixedDropout)     (None, 57, 57, 64)   0           block3d_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block3d_add (Add)               (None, 57, 57, 64)   0           block3d_drop[0][0]               \n",
      "                                                                 block3c_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block3e_expand_conv (Conv2D)    (None, 57, 57, 384)  24576       block3d_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block3e_expand_bn (BatchNormali (None, 57, 57, 384)  1536        block3e_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block3e_expand_activation (Acti (None, 57, 57, 384)  0           block3e_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block3e_dwconv (DepthwiseConv2D (None, 57, 57, 384)  9600        block3e_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block3e_bn (BatchNormalization) (None, 57, 57, 384)  1536        block3e_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block3e_activation (Activation) (None, 57, 57, 384)  0           block3e_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block3e_se_squeeze (GlobalAvera (None, 384)          0           block3e_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block3e_se_reshape (Reshape)    (None, 1, 1, 384)    0           block3e_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block3e_se_reduce (Conv2D)      (None, 1, 1, 16)     6160        block3e_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block3e_se_expand (Conv2D)      (None, 1, 1, 384)    6528        block3e_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block3e_se_excite (Multiply)    (None, 57, 57, 384)  0           block3e_activation[0][0]         \n",
      "                                                                 block3e_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block3e_project_conv (Conv2D)   (None, 57, 57, 64)   24576       block3e_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block3e_project_bn (BatchNormal (None, 57, 57, 64)   256         block3e_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block3e_drop (FixedDropout)     (None, 57, 57, 64)   0           block3e_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block3e_add (Add)               (None, 57, 57, 64)   0           block3e_drop[0][0]               \n",
      "                                                                 block3d_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block4a_expand_conv (Conv2D)    (None, 57, 57, 384)  24576       block3e_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block4a_expand_bn (BatchNormali (None, 57, 57, 384)  1536        block4a_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block4a_expand_activation (Acti (None, 57, 57, 384)  0           block4a_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4a_dwconv (DepthwiseConv2D (None, 29, 29, 384)  3456        block4a_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block4a_bn (BatchNormalization) (None, 29, 29, 384)  1536        block4a_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block4a_activation (Activation) (None, 29, 29, 384)  0           block4a_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block4a_se_squeeze (GlobalAvera (None, 384)          0           block4a_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4a_se_reshape (Reshape)    (None, 1, 1, 384)    0           block4a_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4a_se_reduce (Conv2D)      (None, 1, 1, 16)     6160        block4a_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4a_se_expand (Conv2D)      (None, 1, 1, 384)    6528        block4a_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4a_se_excite (Multiply)    (None, 29, 29, 384)  0           block4a_activation[0][0]         \n",
      "                                                                 block4a_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4a_project_conv (Conv2D)   (None, 29, 29, 128)  49152       block4a_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4a_project_bn (BatchNormal (None, 29, 29, 128)  512         block4a_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block4b_expand_conv (Conv2D)    (None, 29, 29, 768)  98304       block4a_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4b_expand_bn (BatchNormali (None, 29, 29, 768)  3072        block4b_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block4b_expand_activation (Acti (None, 29, 29, 768)  0           block4b_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4b_dwconv (DepthwiseConv2D (None, 29, 29, 768)  6912        block4b_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block4b_bn (BatchNormalization) (None, 29, 29, 768)  3072        block4b_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block4b_activation (Activation) (None, 29, 29, 768)  0           block4b_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block4b_se_squeeze (GlobalAvera (None, 768)          0           block4b_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4b_se_reshape (Reshape)    (None, 1, 1, 768)    0           block4b_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4b_se_reduce (Conv2D)      (None, 1, 1, 32)     24608       block4b_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4b_se_expand (Conv2D)      (None, 1, 1, 768)    25344       block4b_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4b_se_excite (Multiply)    (None, 29, 29, 768)  0           block4b_activation[0][0]         \n",
      "                                                                 block4b_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4b_project_conv (Conv2D)   (None, 29, 29, 128)  98304       block4b_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4b_project_bn (BatchNormal (None, 29, 29, 128)  512         block4b_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block4b_drop (FixedDropout)     (None, 29, 29, 128)  0           block4b_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4b_add (Add)               (None, 29, 29, 128)  0           block4b_drop[0][0]               \n",
      "                                                                 block4a_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4c_expand_conv (Conv2D)    (None, 29, 29, 768)  98304       block4b_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block4c_expand_bn (BatchNormali (None, 29, 29, 768)  3072        block4c_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block4c_expand_activation (Acti (None, 29, 29, 768)  0           block4c_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4c_dwconv (DepthwiseConv2D (None, 29, 29, 768)  6912        block4c_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block4c_bn (BatchNormalization) (None, 29, 29, 768)  3072        block4c_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block4c_activation (Activation) (None, 29, 29, 768)  0           block4c_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block4c_se_squeeze (GlobalAvera (None, 768)          0           block4c_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4c_se_reshape (Reshape)    (None, 1, 1, 768)    0           block4c_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4c_se_reduce (Conv2D)      (None, 1, 1, 32)     24608       block4c_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4c_se_expand (Conv2D)      (None, 1, 1, 768)    25344       block4c_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4c_se_excite (Multiply)    (None, 29, 29, 768)  0           block4c_activation[0][0]         \n",
      "                                                                 block4c_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4c_project_conv (Conv2D)   (None, 29, 29, 128)  98304       block4c_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4c_project_bn (BatchNormal (None, 29, 29, 128)  512         block4c_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block4c_drop (FixedDropout)     (None, 29, 29, 128)  0           block4c_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4c_add (Add)               (None, 29, 29, 128)  0           block4c_drop[0][0]               \n",
      "                                                                 block4b_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block4d_expand_conv (Conv2D)    (None, 29, 29, 768)  98304       block4c_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block4d_expand_bn (BatchNormali (None, 29, 29, 768)  3072        block4d_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block4d_expand_activation (Acti (None, 29, 29, 768)  0           block4d_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4d_dwconv (DepthwiseConv2D (None, 29, 29, 768)  6912        block4d_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block4d_bn (BatchNormalization) (None, 29, 29, 768)  3072        block4d_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block4d_activation (Activation) (None, 29, 29, 768)  0           block4d_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block4d_se_squeeze (GlobalAvera (None, 768)          0           block4d_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4d_se_reshape (Reshape)    (None, 1, 1, 768)    0           block4d_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4d_se_reduce (Conv2D)      (None, 1, 1, 32)     24608       block4d_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4d_se_expand (Conv2D)      (None, 1, 1, 768)    25344       block4d_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4d_se_excite (Multiply)    (None, 29, 29, 768)  0           block4d_activation[0][0]         \n",
      "                                                                 block4d_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4d_project_conv (Conv2D)   (None, 29, 29, 128)  98304       block4d_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4d_project_bn (BatchNormal (None, 29, 29, 128)  512         block4d_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block4d_drop (FixedDropout)     (None, 29, 29, 128)  0           block4d_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4d_add (Add)               (None, 29, 29, 128)  0           block4d_drop[0][0]               \n",
      "                                                                 block4c_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block4e_expand_conv (Conv2D)    (None, 29, 29, 768)  98304       block4d_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block4e_expand_bn (BatchNormali (None, 29, 29, 768)  3072        block4e_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block4e_expand_activation (Acti (None, 29, 29, 768)  0           block4e_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4e_dwconv (DepthwiseConv2D (None, 29, 29, 768)  6912        block4e_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block4e_bn (BatchNormalization) (None, 29, 29, 768)  3072        block4e_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block4e_activation (Activation) (None, 29, 29, 768)  0           block4e_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block4e_se_squeeze (GlobalAvera (None, 768)          0           block4e_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4e_se_reshape (Reshape)    (None, 1, 1, 768)    0           block4e_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4e_se_reduce (Conv2D)      (None, 1, 1, 32)     24608       block4e_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4e_se_expand (Conv2D)      (None, 1, 1, 768)    25344       block4e_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4e_se_excite (Multiply)    (None, 29, 29, 768)  0           block4e_activation[0][0]         \n",
      "                                                                 block4e_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4e_project_conv (Conv2D)   (None, 29, 29, 128)  98304       block4e_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4e_project_bn (BatchNormal (None, 29, 29, 128)  512         block4e_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block4e_drop (FixedDropout)     (None, 29, 29, 128)  0           block4e_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4e_add (Add)               (None, 29, 29, 128)  0           block4e_drop[0][0]               \n",
      "                                                                 block4d_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block4f_expand_conv (Conv2D)    (None, 29, 29, 768)  98304       block4e_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block4f_expand_bn (BatchNormali (None, 29, 29, 768)  3072        block4f_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block4f_expand_activation (Acti (None, 29, 29, 768)  0           block4f_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4f_dwconv (DepthwiseConv2D (None, 29, 29, 768)  6912        block4f_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block4f_bn (BatchNormalization) (None, 29, 29, 768)  3072        block4f_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block4f_activation (Activation) (None, 29, 29, 768)  0           block4f_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block4f_se_squeeze (GlobalAvera (None, 768)          0           block4f_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4f_se_reshape (Reshape)    (None, 1, 1, 768)    0           block4f_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4f_se_reduce (Conv2D)      (None, 1, 1, 32)     24608       block4f_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4f_se_expand (Conv2D)      (None, 1, 1, 768)    25344       block4f_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4f_se_excite (Multiply)    (None, 29, 29, 768)  0           block4f_activation[0][0]         \n",
      "                                                                 block4f_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4f_project_conv (Conv2D)   (None, 29, 29, 128)  98304       block4f_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4f_project_bn (BatchNormal (None, 29, 29, 128)  512         block4f_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block4f_drop (FixedDropout)     (None, 29, 29, 128)  0           block4f_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4f_add (Add)               (None, 29, 29, 128)  0           block4f_drop[0][0]               \n",
      "                                                                 block4e_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block4g_expand_conv (Conv2D)    (None, 29, 29, 768)  98304       block4f_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block4g_expand_bn (BatchNormali (None, 29, 29, 768)  3072        block4g_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block4g_expand_activation (Acti (None, 29, 29, 768)  0           block4g_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4g_dwconv (DepthwiseConv2D (None, 29, 29, 768)  6912        block4g_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block4g_bn (BatchNormalization) (None, 29, 29, 768)  3072        block4g_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block4g_activation (Activation) (None, 29, 29, 768)  0           block4g_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block4g_se_squeeze (GlobalAvera (None, 768)          0           block4g_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4g_se_reshape (Reshape)    (None, 1, 1, 768)    0           block4g_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4g_se_reduce (Conv2D)      (None, 1, 1, 32)     24608       block4g_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4g_se_expand (Conv2D)      (None, 1, 1, 768)    25344       block4g_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4g_se_excite (Multiply)    (None, 29, 29, 768)  0           block4g_activation[0][0]         \n",
      "                                                                 block4g_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4g_project_conv (Conv2D)   (None, 29, 29, 128)  98304       block4g_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4g_project_bn (BatchNormal (None, 29, 29, 128)  512         block4g_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block4g_drop (FixedDropout)     (None, 29, 29, 128)  0           block4g_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4g_add (Add)               (None, 29, 29, 128)  0           block4g_drop[0][0]               \n",
      "                                                                 block4f_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block5a_expand_conv (Conv2D)    (None, 29, 29, 768)  98304       block4g_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block5a_expand_bn (BatchNormali (None, 29, 29, 768)  3072        block5a_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block5a_expand_activation (Acti (None, 29, 29, 768)  0           block5a_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5a_dwconv (DepthwiseConv2D (None, 29, 29, 768)  19200       block5a_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block5a_bn (BatchNormalization) (None, 29, 29, 768)  3072        block5a_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block5a_activation (Activation) (None, 29, 29, 768)  0           block5a_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block5a_se_squeeze (GlobalAvera (None, 768)          0           block5a_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5a_se_reshape (Reshape)    (None, 1, 1, 768)    0           block5a_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5a_se_reduce (Conv2D)      (None, 1, 1, 32)     24608       block5a_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5a_se_expand (Conv2D)      (None, 1, 1, 768)    25344       block5a_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5a_se_excite (Multiply)    (None, 29, 29, 768)  0           block5a_activation[0][0]         \n",
      "                                                                 block5a_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5a_project_conv (Conv2D)   (None, 29, 29, 176)  135168      block5a_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5a_project_bn (BatchNormal (None, 29, 29, 176)  704         block5a_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block5b_expand_conv (Conv2D)    (None, 29, 29, 1056) 185856      block5a_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5b_expand_bn (BatchNormali (None, 29, 29, 1056) 4224        block5b_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block5b_expand_activation (Acti (None, 29, 29, 1056) 0           block5b_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5b_dwconv (DepthwiseConv2D (None, 29, 29, 1056) 26400       block5b_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block5b_bn (BatchNormalization) (None, 29, 29, 1056) 4224        block5b_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block5b_activation (Activation) (None, 29, 29, 1056) 0           block5b_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block5b_se_squeeze (GlobalAvera (None, 1056)         0           block5b_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5b_se_reshape (Reshape)    (None, 1, 1, 1056)   0           block5b_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5b_se_reduce (Conv2D)      (None, 1, 1, 44)     46508       block5b_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5b_se_expand (Conv2D)      (None, 1, 1, 1056)   47520       block5b_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5b_se_excite (Multiply)    (None, 29, 29, 1056) 0           block5b_activation[0][0]         \n",
      "                                                                 block5b_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5b_project_conv (Conv2D)   (None, 29, 29, 176)  185856      block5b_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5b_project_bn (BatchNormal (None, 29, 29, 176)  704         block5b_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block5b_drop (FixedDropout)     (None, 29, 29, 176)  0           block5b_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5b_add (Add)               (None, 29, 29, 176)  0           block5b_drop[0][0]               \n",
      "                                                                 block5a_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5c_expand_conv (Conv2D)    (None, 29, 29, 1056) 185856      block5b_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block5c_expand_bn (BatchNormali (None, 29, 29, 1056) 4224        block5c_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block5c_expand_activation (Acti (None, 29, 29, 1056) 0           block5c_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5c_dwconv (DepthwiseConv2D (None, 29, 29, 1056) 26400       block5c_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block5c_bn (BatchNormalization) (None, 29, 29, 1056) 4224        block5c_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block5c_activation (Activation) (None, 29, 29, 1056) 0           block5c_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block5c_se_squeeze (GlobalAvera (None, 1056)         0           block5c_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5c_se_reshape (Reshape)    (None, 1, 1, 1056)   0           block5c_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5c_se_reduce (Conv2D)      (None, 1, 1, 44)     46508       block5c_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5c_se_expand (Conv2D)      (None, 1, 1, 1056)   47520       block5c_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5c_se_excite (Multiply)    (None, 29, 29, 1056) 0           block5c_activation[0][0]         \n",
      "                                                                 block5c_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5c_project_conv (Conv2D)   (None, 29, 29, 176)  185856      block5c_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5c_project_bn (BatchNormal (None, 29, 29, 176)  704         block5c_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block5c_drop (FixedDropout)     (None, 29, 29, 176)  0           block5c_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5c_add (Add)               (None, 29, 29, 176)  0           block5c_drop[0][0]               \n",
      "                                                                 block5b_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block5d_expand_conv (Conv2D)    (None, 29, 29, 1056) 185856      block5c_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block5d_expand_bn (BatchNormali (None, 29, 29, 1056) 4224        block5d_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block5d_expand_activation (Acti (None, 29, 29, 1056) 0           block5d_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5d_dwconv (DepthwiseConv2D (None, 29, 29, 1056) 26400       block5d_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block5d_bn (BatchNormalization) (None, 29, 29, 1056) 4224        block5d_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block5d_activation (Activation) (None, 29, 29, 1056) 0           block5d_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block5d_se_squeeze (GlobalAvera (None, 1056)         0           block5d_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5d_se_reshape (Reshape)    (None, 1, 1, 1056)   0           block5d_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5d_se_reduce (Conv2D)      (None, 1, 1, 44)     46508       block5d_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5d_se_expand (Conv2D)      (None, 1, 1, 1056)   47520       block5d_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5d_se_excite (Multiply)    (None, 29, 29, 1056) 0           block5d_activation[0][0]         \n",
      "                                                                 block5d_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5d_project_conv (Conv2D)   (None, 29, 29, 176)  185856      block5d_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5d_project_bn (BatchNormal (None, 29, 29, 176)  704         block5d_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block5d_drop (FixedDropout)     (None, 29, 29, 176)  0           block5d_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5d_add (Add)               (None, 29, 29, 176)  0           block5d_drop[0][0]               \n",
      "                                                                 block5c_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block5e_expand_conv (Conv2D)    (None, 29, 29, 1056) 185856      block5d_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block5e_expand_bn (BatchNormali (None, 29, 29, 1056) 4224        block5e_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block5e_expand_activation (Acti (None, 29, 29, 1056) 0           block5e_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5e_dwconv (DepthwiseConv2D (None, 29, 29, 1056) 26400       block5e_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block5e_bn (BatchNormalization) (None, 29, 29, 1056) 4224        block5e_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block5e_activation (Activation) (None, 29, 29, 1056) 0           block5e_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block5e_se_squeeze (GlobalAvera (None, 1056)         0           block5e_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5e_se_reshape (Reshape)    (None, 1, 1, 1056)   0           block5e_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5e_se_reduce (Conv2D)      (None, 1, 1, 44)     46508       block5e_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5e_se_expand (Conv2D)      (None, 1, 1, 1056)   47520       block5e_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5e_se_excite (Multiply)    (None, 29, 29, 1056) 0           block5e_activation[0][0]         \n",
      "                                                                 block5e_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5e_project_conv (Conv2D)   (None, 29, 29, 176)  185856      block5e_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5e_project_bn (BatchNormal (None, 29, 29, 176)  704         block5e_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block5e_drop (FixedDropout)     (None, 29, 29, 176)  0           block5e_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5e_add (Add)               (None, 29, 29, 176)  0           block5e_drop[0][0]               \n",
      "                                                                 block5d_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block5f_expand_conv (Conv2D)    (None, 29, 29, 1056) 185856      block5e_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block5f_expand_bn (BatchNormali (None, 29, 29, 1056) 4224        block5f_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block5f_expand_activation (Acti (None, 29, 29, 1056) 0           block5f_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5f_dwconv (DepthwiseConv2D (None, 29, 29, 1056) 26400       block5f_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block5f_bn (BatchNormalization) (None, 29, 29, 1056) 4224        block5f_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block5f_activation (Activation) (None, 29, 29, 1056) 0           block5f_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block5f_se_squeeze (GlobalAvera (None, 1056)         0           block5f_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5f_se_reshape (Reshape)    (None, 1, 1, 1056)   0           block5f_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5f_se_reduce (Conv2D)      (None, 1, 1, 44)     46508       block5f_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5f_se_expand (Conv2D)      (None, 1, 1, 1056)   47520       block5f_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5f_se_excite (Multiply)    (None, 29, 29, 1056) 0           block5f_activation[0][0]         \n",
      "                                                                 block5f_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5f_project_conv (Conv2D)   (None, 29, 29, 176)  185856      block5f_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5f_project_bn (BatchNormal (None, 29, 29, 176)  704         block5f_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block5f_drop (FixedDropout)     (None, 29, 29, 176)  0           block5f_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5f_add (Add)               (None, 29, 29, 176)  0           block5f_drop[0][0]               \n",
      "                                                                 block5e_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block5g_expand_conv (Conv2D)    (None, 29, 29, 1056) 185856      block5f_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block5g_expand_bn (BatchNormali (None, 29, 29, 1056) 4224        block5g_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block5g_expand_activation (Acti (None, 29, 29, 1056) 0           block5g_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5g_dwconv (DepthwiseConv2D (None, 29, 29, 1056) 26400       block5g_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block5g_bn (BatchNormalization) (None, 29, 29, 1056) 4224        block5g_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block5g_activation (Activation) (None, 29, 29, 1056) 0           block5g_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block5g_se_squeeze (GlobalAvera (None, 1056)         0           block5g_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5g_se_reshape (Reshape)    (None, 1, 1, 1056)   0           block5g_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5g_se_reduce (Conv2D)      (None, 1, 1, 44)     46508       block5g_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5g_se_expand (Conv2D)      (None, 1, 1, 1056)   47520       block5g_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5g_se_excite (Multiply)    (None, 29, 29, 1056) 0           block5g_activation[0][0]         \n",
      "                                                                 block5g_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5g_project_conv (Conv2D)   (None, 29, 29, 176)  185856      block5g_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5g_project_bn (BatchNormal (None, 29, 29, 176)  704         block5g_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block5g_drop (FixedDropout)     (None, 29, 29, 176)  0           block5g_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5g_add (Add)               (None, 29, 29, 176)  0           block5g_drop[0][0]               \n",
      "                                                                 block5f_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block6a_expand_conv (Conv2D)    (None, 29, 29, 1056) 185856      block5g_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block6a_expand_bn (BatchNormali (None, 29, 29, 1056) 4224        block6a_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block6a_expand_activation (Acti (None, 29, 29, 1056) 0           block6a_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6a_dwconv (DepthwiseConv2D (None, 15, 15, 1056) 26400       block6a_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block6a_bn (BatchNormalization) (None, 15, 15, 1056) 4224        block6a_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block6a_activation (Activation) (None, 15, 15, 1056) 0           block6a_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block6a_se_squeeze (GlobalAvera (None, 1056)         0           block6a_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6a_se_reshape (Reshape)    (None, 1, 1, 1056)   0           block6a_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6a_se_reduce (Conv2D)      (None, 1, 1, 44)     46508       block6a_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6a_se_expand (Conv2D)      (None, 1, 1, 1056)   47520       block6a_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6a_se_excite (Multiply)    (None, 15, 15, 1056) 0           block6a_activation[0][0]         \n",
      "                                                                 block6a_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6a_project_conv (Conv2D)   (None, 15, 15, 304)  321024      block6a_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6a_project_bn (BatchNormal (None, 15, 15, 304)  1216        block6a_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block6b_expand_conv (Conv2D)    (None, 15, 15, 1824) 554496      block6a_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6b_expand_bn (BatchNormali (None, 15, 15, 1824) 7296        block6b_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block6b_expand_activation (Acti (None, 15, 15, 1824) 0           block6b_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6b_dwconv (DepthwiseConv2D (None, 15, 15, 1824) 45600       block6b_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block6b_bn (BatchNormalization) (None, 15, 15, 1824) 7296        block6b_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block6b_activation (Activation) (None, 15, 15, 1824) 0           block6b_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block6b_se_squeeze (GlobalAvera (None, 1824)         0           block6b_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6b_se_reshape (Reshape)    (None, 1, 1, 1824)   0           block6b_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6b_se_reduce (Conv2D)      (None, 1, 1, 76)     138700      block6b_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6b_se_expand (Conv2D)      (None, 1, 1, 1824)   140448      block6b_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6b_se_excite (Multiply)    (None, 15, 15, 1824) 0           block6b_activation[0][0]         \n",
      "                                                                 block6b_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6b_project_conv (Conv2D)   (None, 15, 15, 304)  554496      block6b_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6b_project_bn (BatchNormal (None, 15, 15, 304)  1216        block6b_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block6b_drop (FixedDropout)     (None, 15, 15, 304)  0           block6b_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6b_add (Add)               (None, 15, 15, 304)  0           block6b_drop[0][0]               \n",
      "                                                                 block6a_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6c_expand_conv (Conv2D)    (None, 15, 15, 1824) 554496      block6b_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block6c_expand_bn (BatchNormali (None, 15, 15, 1824) 7296        block6c_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block6c_expand_activation (Acti (None, 15, 15, 1824) 0           block6c_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6c_dwconv (DepthwiseConv2D (None, 15, 15, 1824) 45600       block6c_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block6c_bn (BatchNormalization) (None, 15, 15, 1824) 7296        block6c_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block6c_activation (Activation) (None, 15, 15, 1824) 0           block6c_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block6c_se_squeeze (GlobalAvera (None, 1824)         0           block6c_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6c_se_reshape (Reshape)    (None, 1, 1, 1824)   0           block6c_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6c_se_reduce (Conv2D)      (None, 1, 1, 76)     138700      block6c_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6c_se_expand (Conv2D)      (None, 1, 1, 1824)   140448      block6c_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6c_se_excite (Multiply)    (None, 15, 15, 1824) 0           block6c_activation[0][0]         \n",
      "                                                                 block6c_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6c_project_conv (Conv2D)   (None, 15, 15, 304)  554496      block6c_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6c_project_bn (BatchNormal (None, 15, 15, 304)  1216        block6c_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block6c_drop (FixedDropout)     (None, 15, 15, 304)  0           block6c_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6c_add (Add)               (None, 15, 15, 304)  0           block6c_drop[0][0]               \n",
      "                                                                 block6b_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block6d_expand_conv (Conv2D)    (None, 15, 15, 1824) 554496      block6c_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block6d_expand_bn (BatchNormali (None, 15, 15, 1824) 7296        block6d_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block6d_expand_activation (Acti (None, 15, 15, 1824) 0           block6d_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6d_dwconv (DepthwiseConv2D (None, 15, 15, 1824) 45600       block6d_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block6d_bn (BatchNormalization) (None, 15, 15, 1824) 7296        block6d_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block6d_activation (Activation) (None, 15, 15, 1824) 0           block6d_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block6d_se_squeeze (GlobalAvera (None, 1824)         0           block6d_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6d_se_reshape (Reshape)    (None, 1, 1, 1824)   0           block6d_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6d_se_reduce (Conv2D)      (None, 1, 1, 76)     138700      block6d_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6d_se_expand (Conv2D)      (None, 1, 1, 1824)   140448      block6d_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6d_se_excite (Multiply)    (None, 15, 15, 1824) 0           block6d_activation[0][0]         \n",
      "                                                                 block6d_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6d_project_conv (Conv2D)   (None, 15, 15, 304)  554496      block6d_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6d_project_bn (BatchNormal (None, 15, 15, 304)  1216        block6d_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block6d_drop (FixedDropout)     (None, 15, 15, 304)  0           block6d_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6d_add (Add)               (None, 15, 15, 304)  0           block6d_drop[0][0]               \n",
      "                                                                 block6c_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block6e_expand_conv (Conv2D)    (None, 15, 15, 1824) 554496      block6d_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block6e_expand_bn (BatchNormali (None, 15, 15, 1824) 7296        block6e_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block6e_expand_activation (Acti (None, 15, 15, 1824) 0           block6e_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6e_dwconv (DepthwiseConv2D (None, 15, 15, 1824) 45600       block6e_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block6e_bn (BatchNormalization) (None, 15, 15, 1824) 7296        block6e_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block6e_activation (Activation) (None, 15, 15, 1824) 0           block6e_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block6e_se_squeeze (GlobalAvera (None, 1824)         0           block6e_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6e_se_reshape (Reshape)    (None, 1, 1, 1824)   0           block6e_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6e_se_reduce (Conv2D)      (None, 1, 1, 76)     138700      block6e_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6e_se_expand (Conv2D)      (None, 1, 1, 1824)   140448      block6e_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6e_se_excite (Multiply)    (None, 15, 15, 1824) 0           block6e_activation[0][0]         \n",
      "                                                                 block6e_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6e_project_conv (Conv2D)   (None, 15, 15, 304)  554496      block6e_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6e_project_bn (BatchNormal (None, 15, 15, 304)  1216        block6e_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block6e_drop (FixedDropout)     (None, 15, 15, 304)  0           block6e_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6e_add (Add)               (None, 15, 15, 304)  0           block6e_drop[0][0]               \n",
      "                                                                 block6d_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block6f_expand_conv (Conv2D)    (None, 15, 15, 1824) 554496      block6e_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block6f_expand_bn (BatchNormali (None, 15, 15, 1824) 7296        block6f_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block6f_expand_activation (Acti (None, 15, 15, 1824) 0           block6f_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6f_dwconv (DepthwiseConv2D (None, 15, 15, 1824) 45600       block6f_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block6f_bn (BatchNormalization) (None, 15, 15, 1824) 7296        block6f_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block6f_activation (Activation) (None, 15, 15, 1824) 0           block6f_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block6f_se_squeeze (GlobalAvera (None, 1824)         0           block6f_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6f_se_reshape (Reshape)    (None, 1, 1, 1824)   0           block6f_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6f_se_reduce (Conv2D)      (None, 1, 1, 76)     138700      block6f_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6f_se_expand (Conv2D)      (None, 1, 1, 1824)   140448      block6f_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6f_se_excite (Multiply)    (None, 15, 15, 1824) 0           block6f_activation[0][0]         \n",
      "                                                                 block6f_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6f_project_conv (Conv2D)   (None, 15, 15, 304)  554496      block6f_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6f_project_bn (BatchNormal (None, 15, 15, 304)  1216        block6f_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block6f_drop (FixedDropout)     (None, 15, 15, 304)  0           block6f_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6f_add (Add)               (None, 15, 15, 304)  0           block6f_drop[0][0]               \n",
      "                                                                 block6e_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block6g_expand_conv (Conv2D)    (None, 15, 15, 1824) 554496      block6f_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block6g_expand_bn (BatchNormali (None, 15, 15, 1824) 7296        block6g_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block6g_expand_activation (Acti (None, 15, 15, 1824) 0           block6g_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6g_dwconv (DepthwiseConv2D (None, 15, 15, 1824) 45600       block6g_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block6g_bn (BatchNormalization) (None, 15, 15, 1824) 7296        block6g_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block6g_activation (Activation) (None, 15, 15, 1824) 0           block6g_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block6g_se_squeeze (GlobalAvera (None, 1824)         0           block6g_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6g_se_reshape (Reshape)    (None, 1, 1, 1824)   0           block6g_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6g_se_reduce (Conv2D)      (None, 1, 1, 76)     138700      block6g_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6g_se_expand (Conv2D)      (None, 1, 1, 1824)   140448      block6g_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6g_se_excite (Multiply)    (None, 15, 15, 1824) 0           block6g_activation[0][0]         \n",
      "                                                                 block6g_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6g_project_conv (Conv2D)   (None, 15, 15, 304)  554496      block6g_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6g_project_bn (BatchNormal (None, 15, 15, 304)  1216        block6g_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block6g_drop (FixedDropout)     (None, 15, 15, 304)  0           block6g_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6g_add (Add)               (None, 15, 15, 304)  0           block6g_drop[0][0]               \n",
      "                                                                 block6f_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block6h_expand_conv (Conv2D)    (None, 15, 15, 1824) 554496      block6g_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block6h_expand_bn (BatchNormali (None, 15, 15, 1824) 7296        block6h_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block6h_expand_activation (Acti (None, 15, 15, 1824) 0           block6h_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6h_dwconv (DepthwiseConv2D (None, 15, 15, 1824) 45600       block6h_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block6h_bn (BatchNormalization) (None, 15, 15, 1824) 7296        block6h_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block6h_activation (Activation) (None, 15, 15, 1824) 0           block6h_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block6h_se_squeeze (GlobalAvera (None, 1824)         0           block6h_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6h_se_reshape (Reshape)    (None, 1, 1, 1824)   0           block6h_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6h_se_reduce (Conv2D)      (None, 1, 1, 76)     138700      block6h_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6h_se_expand (Conv2D)      (None, 1, 1, 1824)   140448      block6h_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6h_se_excite (Multiply)    (None, 15, 15, 1824) 0           block6h_activation[0][0]         \n",
      "                                                                 block6h_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6h_project_conv (Conv2D)   (None, 15, 15, 304)  554496      block6h_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6h_project_bn (BatchNormal (None, 15, 15, 304)  1216        block6h_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block6h_drop (FixedDropout)     (None, 15, 15, 304)  0           block6h_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6h_add (Add)               (None, 15, 15, 304)  0           block6h_drop[0][0]               \n",
      "                                                                 block6g_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block6i_expand_conv (Conv2D)    (None, 15, 15, 1824) 554496      block6h_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block6i_expand_bn (BatchNormali (None, 15, 15, 1824) 7296        block6i_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block6i_expand_activation (Acti (None, 15, 15, 1824) 0           block6i_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6i_dwconv (DepthwiseConv2D (None, 15, 15, 1824) 45600       block6i_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block6i_bn (BatchNormalization) (None, 15, 15, 1824) 7296        block6i_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block6i_activation (Activation) (None, 15, 15, 1824) 0           block6i_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block6i_se_squeeze (GlobalAvera (None, 1824)         0           block6i_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6i_se_reshape (Reshape)    (None, 1, 1, 1824)   0           block6i_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6i_se_reduce (Conv2D)      (None, 1, 1, 76)     138700      block6i_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6i_se_expand (Conv2D)      (None, 1, 1, 1824)   140448      block6i_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6i_se_excite (Multiply)    (None, 15, 15, 1824) 0           block6i_activation[0][0]         \n",
      "                                                                 block6i_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6i_project_conv (Conv2D)   (None, 15, 15, 304)  554496      block6i_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6i_project_bn (BatchNormal (None, 15, 15, 304)  1216        block6i_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block6i_drop (FixedDropout)     (None, 15, 15, 304)  0           block6i_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6i_add (Add)               (None, 15, 15, 304)  0           block6i_drop[0][0]               \n",
      "                                                                 block6h_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block7a_expand_conv (Conv2D)    (None, 15, 15, 1824) 554496      block6i_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block7a_expand_bn (BatchNormali (None, 15, 15, 1824) 7296        block7a_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block7a_expand_activation (Acti (None, 15, 15, 1824) 0           block7a_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block7a_dwconv (DepthwiseConv2D (None, 15, 15, 1824) 16416       block7a_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block7a_bn (BatchNormalization) (None, 15, 15, 1824) 7296        block7a_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block7a_activation (Activation) (None, 15, 15, 1824) 0           block7a_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block7a_se_squeeze (GlobalAvera (None, 1824)         0           block7a_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block7a_se_reshape (Reshape)    (None, 1, 1, 1824)   0           block7a_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block7a_se_reduce (Conv2D)      (None, 1, 1, 76)     138700      block7a_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block7a_se_expand (Conv2D)      (None, 1, 1, 1824)   140448      block7a_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block7a_se_excite (Multiply)    (None, 15, 15, 1824) 0           block7a_activation[0][0]         \n",
      "                                                                 block7a_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block7a_project_conv (Conv2D)   (None, 15, 15, 512)  933888      block7a_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block7a_project_bn (BatchNormal (None, 15, 15, 512)  2048        block7a_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block7b_expand_conv (Conv2D)    (None, 15, 15, 3072) 1572864     block7a_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block7b_expand_bn (BatchNormali (None, 15, 15, 3072) 12288       block7b_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block7b_expand_activation (Acti (None, 15, 15, 3072) 0           block7b_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block7b_dwconv (DepthwiseConv2D (None, 15, 15, 3072) 27648       block7b_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block7b_bn (BatchNormalization) (None, 15, 15, 3072) 12288       block7b_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block7b_activation (Activation) (None, 15, 15, 3072) 0           block7b_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block7b_se_squeeze (GlobalAvera (None, 3072)         0           block7b_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block7b_se_reshape (Reshape)    (None, 1, 1, 3072)   0           block7b_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block7b_se_reduce (Conv2D)      (None, 1, 1, 128)    393344      block7b_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block7b_se_expand (Conv2D)      (None, 1, 1, 3072)   396288      block7b_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block7b_se_excite (Multiply)    (None, 15, 15, 3072) 0           block7b_activation[0][0]         \n",
      "                                                                 block7b_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block7b_project_conv (Conv2D)   (None, 15, 15, 512)  1572864     block7b_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block7b_project_bn (BatchNormal (None, 15, 15, 512)  2048        block7b_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block7b_drop (FixedDropout)     (None, 15, 15, 512)  0           block7b_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block7b_add (Add)               (None, 15, 15, 512)  0           block7b_drop[0][0]               \n",
      "                                                                 block7a_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block7c_expand_conv (Conv2D)    (None, 15, 15, 3072) 1572864     block7b_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block7c_expand_bn (BatchNormali (None, 15, 15, 3072) 12288       block7c_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block7c_expand_activation (Acti (None, 15, 15, 3072) 0           block7c_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block7c_dwconv (DepthwiseConv2D (None, 15, 15, 3072) 27648       block7c_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block7c_bn (BatchNormalization) (None, 15, 15, 3072) 12288       block7c_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block7c_activation (Activation) (None, 15, 15, 3072) 0           block7c_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block7c_se_squeeze (GlobalAvera (None, 3072)         0           block7c_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block7c_se_reshape (Reshape)    (None, 1, 1, 3072)   0           block7c_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block7c_se_reduce (Conv2D)      (None, 1, 1, 128)    393344      block7c_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block7c_se_expand (Conv2D)      (None, 1, 1, 3072)   396288      block7c_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block7c_se_excite (Multiply)    (None, 15, 15, 3072) 0           block7c_activation[0][0]         \n",
      "                                                                 block7c_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block7c_project_conv (Conv2D)   (None, 15, 15, 512)  1572864     block7c_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block7c_project_bn (BatchNormal (None, 15, 15, 512)  2048        block7c_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block7c_drop (FixedDropout)     (None, 15, 15, 512)  0           block7c_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block7c_add (Add)               (None, 15, 15, 512)  0           block7c_drop[0][0]               \n",
      "                                                                 block7b_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "top_conv (Conv2D)               (None, 15, 15, 2048) 1048576     block7c_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "top_bn (BatchNormalization)     (None, 15, 15, 2048) 8192        top_conv[0][0]                   \n",
      "__________________________________________________________________________________________________\n",
      "top_activation (Activation)     (None, 15, 15, 2048) 0           top_bn[0][0]                     \n",
      "__________________________________________________________________________________________________\n",
      "avg_pool (GlobalAveragePooling2 (None, 2048)         0           top_activation[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "dense_1 (Dense)                 (None, 128)          262272      avg_pool[0][0]                   \n",
      "__________________________________________________________________________________________________\n",
      "batch_normalization_1 (BatchNor (None, 128)          512         dense_1[0][0]                    \n",
      "__________________________________________________________________________________________________\n",
      "dropout_1 (Dropout)             (None, 128)          0           batch_normalization_1[0][0]      \n",
      "__________________________________________________________________________________________________\n",
      "dense_2 (Dense)                 (None, 40)           5160        dropout_1[0][0]                  \n",
      "==================================================================================================\n",
      "Total params: 28,781,464\n",
      "Trainable params: 26,516,904\n",
      "Non-trainable params: 2,264,560\n",
      "__________________________________________________________________________________________________\n"
     ]
    }
   ],
   "source": [
    "x = base_model.output\n",
    "\n",
    "x = Dense(128)(x)\n",
    "x = BatchNormalization()(x)\n",
    "x=Dropout(0.5)(x)\n",
    "\n",
    "DENSE_KERNEL_INITIALIZER = {\n",
    "    'class_name': 'VarianceScaling',\n",
    "    'config': {\n",
    "        'scale': 1. / 3.,\n",
    "        'mode': 'fan_out',\n",
    "        'distribution': 'uniform'\n",
    "    }\n",
    "}\n",
    "predictions = Dense(n_classess, activation='softmax',kernel_initializer=DENSE_KERNEL_INITIALIZER)(x)\n",
    "model = Model(inputs=base_model.input, outputs=predictions)\n",
    "model.summary()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [],
   "source": [
    "with open(f'../tmp/model_{__file__}.json','w') as f:\n",
    "    model_json = model.to_json()\n",
    "    f.write(model_json)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [],
   "source": [
    "ckpt = ModelCheckpoint('../tmp/ckpt-'+__file__+'-Epoch_{epoch:03d}-acc_{acc:.5f}-val_acc_{val_acc:.5f}.h5', save_best_only=True, monitor='val_acc',verbose=1)\n",
    "\n",
    "estop = EarlyStopping(monitor='val_acc', min_delta=1e-7,verbose=1, patience=20)\n",
    "\n",
    "reduce_lr = ReduceLROnPlateau(monitor='val_loss', factor=0.5,patience=3, min_lr=1e-5,verbose=1)\n",
    "\n",
    "csv_logger = CSVLogger(f'../tmp/training_{__file__}.log',append=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "WARNING:tensorflow:From /usr/local/lib/python3.6/dist-packages/tensorflow/python/ops/math_ops.py:3066: to_int32 (from tensorflow.python.ops.math_ops) is deprecated and will be removed in a future version.\n",
      "Instructions for updating:\n",
      "Use tf.cast instead.\n",
      "Epoch 1/100\n",
      "647/647 [==============================] - 502s 775ms/step - loss: 1.6414 - acc: 0.5779 - val_loss: 0.5812 - val_acc: 0.8619\n",
      "\n",
      "Epoch 00001: val_acc improved from -inf to 0.86190, saving model to ../tmp/ckpt-EfficientNet-B5-9.4.5-2-Epoch_001-acc_0.57786-val_acc_0.86190.h5\n",
      "Epoch 2/100\n",
      "647/647 [==============================] - 474s 732ms/step - loss: 0.6407 - acc: 0.8337 - val_loss: 0.3985 - val_acc: 0.9036\n",
      "\n",
      "Epoch 00002: val_acc improved from 0.86190 to 0.90356, saving model to ../tmp/ckpt-EfficientNet-B5-9.4.5-2-Epoch_002-acc_0.83375-val_acc_0.90356.h5\n",
      "Epoch 3/100\n",
      "647/647 [==============================] - 471s 728ms/step - loss: 0.4091 - acc: 0.8920 - val_loss: 0.3401 - val_acc: 0.9079\n",
      "\n",
      "Epoch 00003: val_acc improved from 0.90356 to 0.90793, saving model to ../tmp/ckpt-EfficientNet-B5-9.4.5-2-Epoch_003-acc_0.89204-val_acc_0.90793.h5\n",
      "Epoch 4/100\n",
      "647/647 [==============================] - 473s 730ms/step - loss: 0.2790 - acc: 0.9304 - val_loss: 0.3167 - val_acc: 0.9177\n",
      "\n",
      "Epoch 00004: val_acc improved from 0.90793 to 0.91767, saving model to ../tmp/ckpt-EfficientNet-B5-9.4.5-2-Epoch_004-acc_0.93041-val_acc_0.91767.h5\n",
      "Epoch 5/100\n",
      "647/647 [==============================] - 474s 732ms/step - loss: 0.2125 - acc: 0.9497 - val_loss: 0.3051 - val_acc: 0.9190\n",
      "\n",
      "Epoch 00005: val_acc improved from 0.91767 to 0.91902, saving model to ../tmp/ckpt-EfficientNet-B5-9.4.5-2-Epoch_005-acc_0.94974-val_acc_0.91902.h5\n",
      "Epoch 6/100\n",
      "647/647 [==============================] - 472s 730ms/step - loss: 0.1544 - acc: 0.9616 - val_loss: 0.2949 - val_acc: 0.9220\n",
      "\n",
      "Epoch 00006: val_acc improved from 0.91902 to 0.92204, saving model to ../tmp/ckpt-EfficientNet-B5-9.4.5-2-Epoch_006-acc_0.96153-val_acc_0.92204.h5\n",
      "Epoch 7/100\n",
      "647/647 [==============================] - 472s 730ms/step - loss: 0.1264 - acc: 0.9691 - val_loss: 0.2781 - val_acc: 0.9254\n",
      "\n",
      "Epoch 00007: val_acc improved from 0.92204 to 0.92540, saving model to ../tmp/ckpt-EfficientNet-B5-9.4.5-2-Epoch_007-acc_0.96917-val_acc_0.92540.h5\n",
      "Epoch 8/100\n",
      "647/647 [==============================] - 471s 727ms/step - loss: 0.1117 - acc: 0.9726 - val_loss: 0.3048 - val_acc: 0.9200\n",
      "\n",
      "Epoch 00008: val_acc did not improve from 0.92540\n",
      "Epoch 9/100\n",
      "647/647 [==============================] - 471s 728ms/step - loss: 0.1020 - acc: 0.9749 - val_loss: 0.3070 - val_acc: 0.9264\n",
      "\n",
      "Epoch 00009: val_acc improved from 0.92540 to 0.92641, saving model to ../tmp/ckpt-EfficientNet-B5-9.4.5-2-Epoch_009-acc_0.97487-val_acc_0.92641.h5\n",
      "Epoch 10/100\n",
      "647/647 [==============================] - 473s 731ms/step - loss: 0.0832 - acc: 0.9815 - val_loss: 0.3149 - val_acc: 0.9200\n",
      "\n",
      "Epoch 00010: val_acc did not improve from 0.92641\n",
      "\n",
      "Epoch 00010: ReduceLROnPlateau reducing learning rate to 4.999999873689376e-05.\n",
      "Epoch 11/100\n",
      "647/647 [==============================] - 473s 731ms/step - loss: 0.0664 - acc: 0.9846 - val_loss: 0.2818 - val_acc: 0.9267\n",
      "\n",
      "Epoch 00011: val_acc improved from 0.92641 to 0.92675, saving model to ../tmp/ckpt-EfficientNet-B5-9.4.5-2-Epoch_011-acc_0.98463-val_acc_0.92675.h5\n",
      "Epoch 12/100\n",
      "647/647 [==============================] - 472s 730ms/step - loss: 0.0445 - acc: 0.9908 - val_loss: 0.2955 - val_acc: 0.9247\n",
      "\n",
      "Epoch 00012: val_acc did not improve from 0.92675\n",
      "Epoch 13/100\n",
      "647/647 [==============================] - 471s 728ms/step - loss: 0.0425 - acc: 0.9896 - val_loss: 0.2895 - val_acc: 0.9237\n",
      "\n",
      "Epoch 00013: val_acc did not improve from 0.92675\n",
      "\n",
      "Epoch 00013: ReduceLROnPlateau reducing learning rate to 2.499999936844688e-05.\n",
      "Epoch 14/100\n",
      "647/647 [==============================] - 472s 730ms/step - loss: 0.0376 - acc: 0.9916 - val_loss: 0.2743 - val_acc: 0.9308\n",
      "\n",
      "Epoch 00014: val_acc improved from 0.92675 to 0.93078, saving model to ../tmp/ckpt-EfficientNet-B5-9.4.5-2-Epoch_014-acc_0.99159-val_acc_0.93078.h5\n",
      "Epoch 15/100\n",
      "647/647 [==============================] - 472s 730ms/step - loss: 0.0322 - acc: 0.9929 - val_loss: 0.2754 - val_acc: 0.9318\n",
      "\n",
      "Epoch 00015: val_acc improved from 0.93078 to 0.93179, saving model to ../tmp/ckpt-EfficientNet-B5-9.4.5-2-Epoch_015-acc_0.99294-val_acc_0.93179.h5\n",
      "Epoch 16/100\n",
      "647/647 [==============================] - 475s 735ms/step - loss: 0.0283 - acc: 0.9956 - val_loss: 0.2803 - val_acc: 0.9315\n",
      "\n",
      "Epoch 00016: val_acc did not improve from 0.93179\n",
      "Epoch 17/100\n",
      "647/647 [==============================] - 471s 728ms/step - loss: 0.0260 - acc: 0.9941 - val_loss: 0.2726 - val_acc: 0.9325\n",
      "\n",
      "Epoch 00017: val_acc improved from 0.93179 to 0.93246, saving model to ../tmp/ckpt-EfficientNet-B5-9.4.5-2-Epoch_017-acc_0.99410-val_acc_0.93246.h5\n",
      "Epoch 18/100\n",
      "647/647 [==============================] - 473s 731ms/step - loss: 0.0239 - acc: 0.9957 - val_loss: 0.2793 - val_acc: 0.9318\n",
      "\n",
      "Epoch 00018: val_acc did not improve from 0.93246\n",
      "Epoch 19/100\n",
      "647/647 [==============================] - 472s 729ms/step - loss: 0.0221 - acc: 0.9957 - val_loss: 0.2893 - val_acc: 0.9311\n",
      "\n",
      "Epoch 00019: val_acc did not improve from 0.93246\n",
      "Epoch 20/100\n",
      "647/647 [==============================] - 471s 727ms/step - loss: 0.0243 - acc: 0.9947 - val_loss: 0.2852 - val_acc: 0.9304\n",
      "\n",
      "Epoch 00020: val_acc did not improve from 0.93246\n",
      "\n",
      "Epoch 00020: ReduceLROnPlateau reducing learning rate to 1.249999968422344e-05.\n",
      "Epoch 21/100\n",
      "647/647 [==============================] - 469s 725ms/step - loss: 0.0233 - acc: 0.9955 - val_loss: 0.2818 - val_acc: 0.9308\n",
      "\n",
      "Epoch 00021: val_acc did not improve from 0.93246\n",
      "Epoch 22/100\n",
      "647/647 [==============================] - 472s 729ms/step - loss: 0.0223 - acc: 0.9955 - val_loss: 0.2810 - val_acc: 0.9325\n",
      "\n",
      "Epoch 00022: val_acc did not improve from 0.93246\n",
      "Epoch 23/100\n",
      "647/647 [==============================] - 469s 724ms/step - loss: 0.0214 - acc: 0.9957 - val_loss: 0.2808 - val_acc: 0.9315\n",
      "\n",
      "Epoch 00023: val_acc did not improve from 0.93246\n",
      "\n",
      "Epoch 00023: ReduceLROnPlateau reducing learning rate to 1e-05.\n",
      "Epoch 24/100\n",
      "647/647 [==============================] - 469s 725ms/step - loss: 0.0170 - acc: 0.9966 - val_loss: 0.2820 - val_acc: 0.9315\n",
      "\n",
      "Epoch 00024: val_acc did not improve from 0.93246\n",
      "Epoch 25/100\n",
      "647/647 [==============================] - 469s 725ms/step - loss: 0.0181 - acc: 0.9962 - val_loss: 0.2843 - val_acc: 0.9325\n",
      "\n",
      "Epoch 00025: val_acc did not improve from 0.93246\n",
      "Epoch 26/100\n",
      "647/647 [==============================] - 469s 726ms/step - loss: 0.0153 - acc: 0.9969 - val_loss: 0.2843 - val_acc: 0.9321\n",
      "\n",
      "Epoch 00026: val_acc did not improve from 0.93246\n",
      "Epoch 27/100\n",
      "647/647 [==============================] - 472s 729ms/step - loss: 0.0167 - acc: 0.9966 - val_loss: 0.2835 - val_acc: 0.9318\n",
      "\n",
      "Epoch 00027: val_acc did not improve from 0.93246\n",
      "Epoch 28/100\n",
      "647/647 [==============================] - 473s 731ms/step - loss: 0.0164 - acc: 0.9971 - val_loss: 0.2834 - val_acc: 0.9311\n",
      "\n",
      "Epoch 00028: val_acc did not improve from 0.93246\n",
      "Epoch 29/100\n",
      " 27/647 [>.............................] - ETA: 6:24 - loss: 0.0117 - acc: 0.9977"
     ]
    }
   ],
   "source": [
    "model.compile(optimizer=Adam(lr=1e-4), loss='categorical_crossentropy', metrics=['accuracy'])\n",
    "\n",
    "model.fit_generator(\n",
    "    train_g,\n",
    "    # steps_per_epoch=100,\n",
    "    steps_per_epoch=train_g.n // batch_size,\n",
    "    epochs=100,\n",
    "    class_weight=d_class_weights,\n",
    "    callbacks=[ckpt, estop,reduce_lr,csv_logger],\n",
    "    validation_data=valid_g,\n",
    "    # validation_steps=1,\n",
    "    validation_steps=valid_g.n // batch_size\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "!ls"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.8"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
